package auth

import (
	"fmt"
	"inventory/api/inventory"
	"inventory/pkg/token"
)

// WebToken
type WebToken struct {
	*inventory.WebToken
	Exp int64 `json:"exp"`
	Iat int64 `json:"iat"`
}

// string
func (m WebToken) String() string {
	return fmt.Sprintf("emp_id=%d,sg_id=%d,name=%s,g_id=%s,iat=%d,exp=%d",
		m.EmpId, m.SgId, m.EmpName, m.AccountId, m.Iat, m.Exp)
}

// Valid
func (m WebToken) Valid() error {
	return token.VerifyJwt(m.Exp, m.Iat)
}

type WebTokenRequest interface {
	GetWebToken() *inventory.WebToken
}
